home *** CD-ROM | disk | FTP | other *** search
/ Aminet 7 / Aminet 7 - August 1995.iso / Aminet / misc / sci / RARS_Amiga_3.lha / RARS / EAGUI.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-05-27  |  5.2 KB  |  162 lines

  1. /*
  2.  * $RCSfile: EAGUI.h,v $
  3.  *
  4.  * $Author: marcel $
  5.  *
  6.  * $Revision: 3.1 $
  7.  *
  8.  * $Date: 1994/11/15 22:52:19 $
  9.  *
  10.  * $Locker: marcel $
  11.  *
  12.  * $State: Exp $
  13.  */
  14.  
  15. #ifndef EAGUI_H
  16. #define EAGUI_H
  17.  
  18. /* header files */
  19. #include <exec/types.h>
  20. #include <exec/lists.h>
  21. #include <exec/nodes.h>
  22. #include <utility/hooks.h>
  23. #include "EAGUI_protos.h"
  24.  
  25. /* library name and version */
  26. #define EAGUILIBRARYNAME        "EAGUI.library"
  27. #define EAGUILIBRARYVERSION    3L
  28.  
  29. /* ea_Object.type definitions */
  30. #define EA_TYPE_HGROUP        1
  31. #define EA_TYPE_VGROUP        2
  32. #define EA_TYPE_GTGADGET        3
  33. #define EA_TYPE_BOOPSIGADGET    4
  34. #define EA_TYPE_CUSTOMIMAGE    5
  35. #define EA_TYPE_BOOPSIIMAGE    6
  36.  
  37. /* various LONG attributes can have an unknown value at some point */
  38. #define EA_UNKNOWN            -1
  39.  
  40. /* error return codes */
  41. #define EA_ERROR_OK                    0
  42. #define EA_ERROR_OUT_OF_MEMORY        100
  43. #define EA_ERROR_BAD_OBJECT            101
  44.  
  45. /* flags for standard methods */
  46. #define EASM_NONE                    0x00000000
  47. #define EASM_MINSIZE                0x00000001
  48. #define EASM_BORDER                    0x00000002
  49.  
  50. /* tags */
  51. #define EA_TAGBASE                    (TAG_USER)
  52.  
  53. /* These tags can be used under different circumstances. The characters in the comments
  54.  * behind the tags indicate the allowed use:
  55.  *
  56.  * I = Initialize: ea_NewObjectA()
  57.  * S = Set:        ea_SetAttrsA()
  58.  * G = Get:        ea_GetAttrsA()
  59.  *
  60.  * Most functions ignore tags they don't recognize, but don't count on that,
  61.  * or side effects may occur in future versions.
  62.  */
  63. #define EA_Parent                    (EA_TAGBASE + 1)    /* I.G */
  64. #define EA_Type                    (EA_TAGBASE + 2)    /* ..G */
  65. #define EA_Disabled                    (EA_TAGBASE + 3)    /* ISG */
  66. #define EA_ID                        (EA_TAGBASE + 4)    /* ISG */
  67. #define EA_MinWidth                    (EA_TAGBASE + 5)    /* ISG */
  68. #define EA_MinHeight                (EA_TAGBASE + 6)    /* ISG */
  69. #define EA_BorderLeft                (EA_TAGBASE + 7)    /* ISG */
  70. #define EA_BorderRight                (EA_TAGBASE + 8)    /* ISG */
  71. #define EA_BorderTop                (EA_TAGBASE + 9)    /* ISG */
  72. #define EA_BorderBottom                (EA_TAGBASE + 10)    /* ISG */
  73. #define EA_Left                    (EA_TAGBASE + 11)    /* .SG */
  74. #define EA_Top                        (EA_TAGBASE + 12)    /* .SG */
  75. #define EA_Width                    (EA_TAGBASE + 13)    /* ISG */
  76. #define EA_Height                    (EA_TAGBASE + 14)    /* ISG */
  77. #define EA_Weight                    (EA_TAGBASE + 15)    /* ISG */
  78. #define EA_Instance                    (EA_TAGBASE + 17)    /* ..G */
  79. #define EA_InstanceAddress            (EA_TAGBASE + 18)    /* ISG */
  80.  
  81. #define EA_MinSizeMethod                (EA_TAGBASE + 19)    /* ISG */
  82. #define EA_BorderMethod                (EA_TAGBASE + 20)    /* ISG */
  83. #define EA_RenderMethod                (EA_TAGBASE + 21)    /* ISG */
  84. #define EA_GetStateMethod            (EA_TAGBASE + 22)    /* ISG */
  85. #define EA_SetStateMethod            (EA_TAGBASE + 23)    /* ISG */
  86.  
  87. #define EA_Object                    (EA_TAGBASE + 24)    /* I.. */
  88.  
  89. #define EA_GTType                    (EA_TAGBASE + 25)    /* ISG */
  90. #define EA_GTTagList                (EA_TAGBASE + 26)    /* ISG */
  91. #define EA_GTText                    (EA_TAGBASE + 27)    /* ISG */
  92. #define EA_GTTextAttr                (EA_TAGBASE + 28)    /* ISG */
  93. #define EA_GTFlags                    (EA_TAGBASE + 29)    /* ISG */
  94.  
  95. #define EA_BOOPSIPrivClass            (EA_TAGBASE + 30)    /* ISG */
  96. #define EA_BOOPSIPubClass            (EA_TAGBASE + 31)    /* ISG */
  97. #define EA_BOOPSITagList                (EA_TAGBASE + 32)    /* ISG */
  98.  
  99. #define EA_Child                    (EA_TAGBASE + 33)    /* I.. */
  100.  
  101. #define EA_FirstChild                (EA_TAGBASE + 34)    /* ..G */
  102. #define EA_NextObject                (EA_TAGBASE + 35)    /* ..G */
  103.  
  104. #define EA_StandardMethod            (EA_TAGBASE + 36)    /* IS. */
  105. #define EA_UserData                    (EA_TAGBASE + 37)    /* ISG */
  106.  
  107. #define EA_DefDisabled                (EA_TAGBASE + 38)    /* .SG */
  108. #define EA_DefWeight                (EA_TAGBASE + 39)    /* .SG */
  109. #define EA_DefMinSizeMethod            (EA_TAGBASE + 40)    /* .SG */
  110. #define EA_DefBorderMethod            (EA_TAGBASE + 41)    /* .SG */
  111. #define EA_DefRenderMethod            (EA_TAGBASE + 42)    /* .SG */
  112. #define EA_DefGetStateMethod            (EA_TAGBASE + 43)    /* .SG */
  113. #define EA_DefSetStateMethod            (EA_TAGBASE + 44)    /* .SG */
  114. #define EA_DefGTType                (EA_TAGBASE + 45)    /* .SG */
  115. #define EA_DefGTTagList                (EA_TAGBASE + 46)    /* .SG */
  116. #define EA_DefGTText                (EA_TAGBASE + 47)    /* .SG */
  117. #define EA_DefGTTextAttr                (EA_TAGBASE + 48)    /* .SG */
  118. #define EA_DefGTFlags                (EA_TAGBASE + 49)    /* .SG */
  119. #define EA_DefBOOPSIPrivClass            (EA_TAGBASE + 50)    /* .SG */
  120. #define EA_DefBOOPSIPubClass            (EA_TAGBASE + 51)    /* .SG */
  121. #define EA_DefBOOPSITagList            (EA_TAGBASE + 52)    /* .SG */
  122. #define EA_DefStandardMethod            (EA_TAGBASE + 53)    /* .SG */
  123. #define EA_DefBorderLeft                (EA_TAGBASE + 54)    /* .SG */
  124. #define EA_DefBorderRight            (EA_TAGBASE + 55)    /* .SG */
  125. #define EA_DefBorderTop                (EA_TAGBASE + 56)    /* .SG */
  126. #define EA_DefBorderBottom            (EA_TAGBASE + 57)    /* .SG */
  127.  
  128.  
  129. /* Pointer to an object, which is used as a `handle' by a lot of functions. The actual
  130.  * data structure of the object is hidden from the application programmer.
  131.  */
  132. typedef struct ea_Object *    OPTR;
  133.  
  134. /* This structure is READ-ONLY! */
  135. typedef struct ea_RelationObject
  136. {
  137.     /* private */
  138.     struct Node            node;                    /* node */
  139.  
  140.     /* attributes */
  141.     struct ea_Object *        object_ptr;                /* pointer to the object */
  142. };
  143.  
  144. /* Message structure as used by the Render hook. A pointer to this structure is passed
  145.  * in the message parameter of the callback hook. For more information on hooks, take
  146.  * a look at amiga.lib/CallHook() or utility.library/CallHookPkt().
  147.  */
  148. typedef struct ea_RenderMessage
  149. {
  150.     struct ea_Object *root_ptr;
  151.     struct RastPort *rastport_ptr;
  152. };
  153.  
  154. /* Library base name. */
  155. GLOBAL struct Library *EAGUIBase;
  156.  
  157. #ifndef NOEAGUIMACROS
  158. #include "EAGUI_macros.h"
  159. #endif
  160.  
  161. #endif /* EAGUI_H */
  162.